"""
1、定义两个字典，键值任意，把两个字典合并在一起，组成一个新字典
2、定义两个列表，将两个列表合并
3、定义一个集合，包含2，3，4，5，7元素，判断元素12在不在集合中，用分支语句打印不同结果； 判断元素3在不在集合中，打印结果
4、让用户输入账号密码，去除账号密码前后无用的空格，然后判断账号是不是admin，密码是不是123456，如果都相同显示登录成功，否则显示登录失败
5、实现用户输入用户名和密码,当用户名为 seven 或 alex 且 密码为 123 时,显示登陆成功,否则登陆失败,失败时允许重复输入三次
6、用程序计算100以内有多少个3的整数倍数字
7、实现判断用户输入的内容中是否有c,要求最多输入三次
8、让用户输入个人基本信息，包括 姓名、电话、住址、年龄，通过字典保存用户的数据信息，当用户输入q的时候，结束输入
结束输入后，打印显示全部的用户名，并要求选择一个名称
然后打印输出这个用户的全部信息，输出信息的格式：用户 xxx，电话是xxx，地址是xxx，年龄是xxx
9、图书管理系统
支持选项，选择功能
图书管理系统：
1.添加图书
2.删除图书
3.修改图书
4.查询图书
5.显示所有图书
6.退出操作
10、预设一个 0~9 之间的整数，让用户猜一猜并输入所猜的数，如果大于预设的数，显示“太大” ；小于预设的数，显示“太小” ，如此循环，直至猜中该数，显示“恭喜！你猜中了！ ”（使用random模块）
11、用户分别从键盘输入4个整数和3个整数组成两个列表list1和list2，将列表list2合并到list1中，并在list1末尾再添加两个数字90和100，然后对list1降序排列，最后输出最终的列表list1
12、最后一个单词的长度
给你一个字符串 s，由若干单词组成，单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。
单词 是指仅由字母组成、不包含任何空格字符的最大子字符串
13、编写一个程序，要求用户输入一个字符串，并将其反转输出。
14、编写一个程序，要求用户输入一个整数，判断它是奇数还是偶数，并输出结果
15、编写一个程序，计算并输出 1 到 100 之间所有能被 7 整除但不能被 5 整除的数的和
16、输入任意三个数，用if语句编写求出其中最小值的程序
17、两数之和
给定一个整数数组 nums和一个整数目标值 target，请你在该数组中找出 和为目标值 target 的那两个整数，并返回它们的数组下标。
你可以假设每种输入只会对应一个答案。但是，数组中同一个元素在答案里不能重复出现。
你可以按任意顺序返回答案。
18、listinfo = [133, 88, 24, 33, 232, 44, 11, 44]，取出列表小于100，且为偶数的数
19、从键盘上输入任意一个整数，输出这个整数是几位数
20、定义一个字典包含“name”、“age”两个key，对应的值为“韩梅梅”, 33，
 将“name”对应的value值改为“韩涛”
添加新的键“sex”，值为“男”
 将“age”键值对删除
21、编写程序，定义一个列表，通过索引打印出列表中第2个值，删除列表中的第3值
1. 通过索引打印出列表中第2个值
2. 删除列表中的第3值
"""
import random

# todo 1.定义两个字典，键值任意，把两个字典合并在一起，组成一个新字典
"""
dict1 = {"name": "魏彦旭"}
dict2 = {"age": 23}
dict1.update(dict2)
print(dict1)
"""
# todo 2、定义两个列表，将两个列表合并
"""
list1 = [1, 2, 3, 4]
list2 = [5, 6, 7, 8]
# print(list1.append(list2)) #合并成为一个列表
# # 合并成元组
# list1 = zip(list1,list2)
# print(list(list1))
# print(dict(zip(list1,list2))) #合并成为一个字典
"""
# todo 3、定义一个集合，包含2，3，4，5，7元素，判断元素12在不在集合中，用分支语句打印不同结果； 判断元素3在不在集合中，
"""
set1 = {2, 3, 4, 5, 7}
if 12 in set1:
    print("12在集合中")
else:
    print("12不在不在集合中")
    if 3 in set1:
        print("3在集合中")
    else:
        print("3不在")
"""
# todo 4、让用户输入账号密码，去除账号密码前后无用的空格，然后判断账号是不是admin，密码是不是123456，如果都相同显示登录成功，否则显示登录失败
"""
a = input("请你输入账号:").strip()
print(a)
b = input("请你输入密码:").strip()
print(b)
if a == "admin" and b == "123456":
    print(f"账号是{a}登录成功")
else:
    print("登录失败")
"""
# todo 5、实现用户输入用户名和密码,当用户名为 seven 或 alex 且 密码为 123 时,显示登陆成功,否则登陆失败,失败时允许重复输入三次
"""
dic1 = {"seven": "123", "alex": "123"}
max_step = 3
step = 0
while step<max_step:
    username = input("请你输入账号:").strip()
    password = input("请你输入密码:").strip()
    if username in dic1.keys() and password in dic1.values():
        print(f"登录成功账号是{username},密码是{password}")
        break
    else:
        print("登录失败，请重新输入")
        step +=1
"""
# todo 6、用程序计算100以内有多少个3的整数倍数字
"""
result = []
count = 0
for i in range(1,101):
    if i % 3 ==0:
        count += 1
        result.append(i)
print(f"3的倍数是{result},一共有{count}个")
"""
# todo 7、实现判断用户输入的内容中是否有c,要求最多输入三次
"""
max_step = 3
step = 0
while step < max_step:
    ic = input("请你输入:")
    if 'c' in ic:
        print(f"c在你输入的{ic}")
        break
    else:
        print("c不在你输入的")
        step += 1
    if step == max_step:
        print("你的次数已用尽拜拜")
        break
"""
# todo 8、让用户输入个人基本信息，包括 姓名、电话、住址、年龄，通过字典保存用户的数据信息，当用户输入q的时候，结束输入
# 结束输入后，打印显示全部的用户名，并要求选择一个名称,然后打印输出这个用户的全部信息，输出信息的格式：用户 xxx，电话是xxx，地址是xxx，年龄是xxx
"""
user = {}
while True:
    name = input("请你输入name:")
    if 'p' in name:
        print("结束输入")
        break
    phone = input("请你输入手机号:")
    address = input("请你输入地址:")
    age = input("请你输入年龄:")
    user[name] = {
        'phone': phone,
        'address': address,
        'age': age
    }
for user_name in user.keys():
    print(user_name, end=" ")
print()

for item in user.items():
    print(item,end =" ")
print()
s_name = input("请你输入一个你想选择的用户:")
if s_name in user:
    s_user = user[s_name]
    print(f"你选的用户{s_name},电话是{s_user['phone']},地址是{s_user['address']},年龄是{s_user['age']}")
else:
    print("该用户不存在")
"""
# todo 9、图书管理系统
"""
# 支持选项，选择功能
# 图书管理系统：
# 1.添加图书
# 2.删除图书
# 3.修改图书
# 4.查询图书
# 5.显示所有图书
# 6.退出操作
"""
book_dict = {}
while True:
    # 显示菜单
    print("图书管理系统：")
    print("1. 添加图书")
    print("2. 删除图书")
    print("3. 修改图书")
    print("4. 查询图书")
    print("5. 显示所有图书")
    print("6. 退出操作")

    choice  = input("请你输入你要做出的选择:")
    if choice == "1":
        book_id = input("请输入图书id: ")
        book_name = input("请输入图书名称: ")
        book_dict[book_id] = book_name
        print(f"添加的图书id:{book_id},图书名称{book_name}成功")
    elif choice =="2":
        book_id = input("请输入你想删除的图书id:")
        if book_id in book_dict:
            del book_dict[book_id]
            print(f"删除的图书{book_id}成功")
        else:
            print(f"你想删除的图书{book_id}不存在")

    elif choice == "3":
        book_id = input("请输入要修改的图书id: ")
        if book_id in book_dict:
            new_name = input("请输入新的图书名称: ")
            book_dict[book_id] = new_name
            print("图书修改成功！")
        else:
            print("图书不存在，请重新输入。")
    elif choice == "4":
        book_id = input("请输入要查询的图书名称: ")
        if book_id in book_dict:
            print(f"{book_id}名称的是{book_dict[book_id]}")
        else:
            print("图书不存在，请重新输入。")
    elif choice == "5":
        for book in book_dict.items():
            print(f"{book_id}的图书名称是{book_name}")
    elif choice == "6":
        print("感谢使用图书管理系统，再见！")
        break

    else:
        print("无效的选择，请重新输入。")

# todo 10、预设一个 0~9 之间的整数，让用户猜一猜并输入所猜的数，如果大于预设的数，显示“太大” ；小于预设的数，显示“太小” ，如此循环，直至猜中该数，显示“恭喜！你猜中了！ ”
"""
answer_num = random.choice(range(10))
while True:
    input_num = int(input("请你输入你猜测的数字:"))
    if input_num == answer_num:
        print("恭喜！你猜中了！")
        break
    elif input_num < answer_num:
        print("太小")
    elif input_num > answer_num:
        print("太大")
"""
# todo 11、用户分别从键盘输入4个整数和3个整数组成两个列表list1和list2，将列表list2合并到list1中，并在list1末尾再添加两个数字90和100，然后对list1降序排列，最后输出最终的列表list1
"""
list1 = []
list2 = []
for i in range(4):
    num = int(input(f"请你输入list1的第{i+1}个整数:"))
    list1.append(num)
print()
for i in range(3):
    num = int(input(f"请你输入list2的第{i+1}个整数:"))
    list1.append(num)

list1.extend(list2)
list1.append(90)
list1.append(100)
list1.sort(reverse=True)
print(list1)
"""
# todo 12、最后一个单词的长度、给你一个字符串 s，由若干单词组成，单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。单词 是指仅由字母组成、不包含任何空格字符的最大子字符串
"""
str = "hello world".strip()
last_index = str.index(" ")
if last_index == -1:
    length = len(str)
else:
    length = len(str)-last_index-1
print(length)
"""
# todo 13、编写一个程序，要求用户输入一个字符串，并将其反转输出。
"""
str1 = input("请你输入一个字符串:")
print(str1[::-1])
"""
# todo 14、编写一个程序，要求用户输入一个整数，判断它是奇数还是偶数，并输出结果
"""
num = int(input("请你输入一个整数:"))
if num % 2 == 0:
    print(f"{num}是偶数")
elif num % 2 ==1:
    print(f"{num}是奇数")
"""
# todo 15、编写一个程序，计算并输出 1 到 100 之间所有能被 7 整除但不能被 5 整除的数的和
"""
sum_num = 0
for num in range(1,101):
    if num % 7 == 0 and num % 5 != 0:
        sum_num += num
print(sum_num)
"""
# todo 16、输入任意三个数，用if语句编写求出其中最小值的程序
"""
num1 = int(input(f"请你输入第1个整数:"))
num2 = int(input(f"请你输入第2个整数:"))
num3 = int(input(f"请你输入第3个整数:"))
if num1 < num2:
    if num1 < num3:
        print(f"最小值为{num1}")
    elif num1 > num3:
        print(f"最小值为{num3}")
    elif num1 == num3:
        print(f"最小值为{num1}")
elif num1 > num2:
    if num2 < num3:
        print(f"最小值为{num2}")
    elif num2 > num3:
        print(f"最小值为{num3}")
    elif num2 == num3:
        print(f"最小值为{num2}")
elif num1 == num2:
    if num1 < num3:
        print(f"最小值为{num1}")
    elif num1 > num3:
        print(f"最小值为{num3}")
    elif num1 == num3:
        print(f"最小值为{num3}")
"""
# todo 17、两数之和
# 给定一个整数数组 nums和一个整数目标值 target，请你在该数组中找出 和为目标值 target 的那两个整数，并返回它们的数组下标。
# 你可以假设每种输入只会对应一个答案。但是，数组中同一个元素在答案里不能重复出现。
# 你可以按任意顺序返回答案。
"""
nums = [11,22,33,55,88,99]
target = 88
for i in range(len(nums)):
    for j in range(i):
        if nums[i]+nums[j] == target:
            print(j,i)
"""
# todo 18、listinfo = [133, 88, 24, 33, 232, 44, 11, 44]，取出列表小于100，且为偶数的数
"""
listinfo = [133, 88, 24, 33, 232, 44, 11, 44]
result = []
for i in range(len(listinfo)):
    if listinfo[i] < 100:
        if listinfo[i] % 2 ==0:
            result.append(listinfo[i])
print(result)
"""
# todo 19、从键盘上输入任意一个整数，输出这个整数是几位数
"""
num = input("请你任意输入一个整数:")
a = len(num)
print(f"这个整数是{a}位数")
"""
# todo 20、定义一个字典包含“name”、“age”两个key，对应的值为“韩梅梅”, 33，
"""
dict1 ={"name":"韩梅梅","age":33}
# 20.1 将“name”对应的value值改为“韩涛”
dict1['name'] = "韩涛"
print(dict1)
# 20.2 添加新的键“sex”，值为“男”
dict1['sex'] = "男"
print(dict1)
# 20.3 将“age”键值对删除
del dict1["age"]
print(dict1)
"""
# todo 21、编写程序，定义一个列表，通过索引打印出列表中第2个值，删除列表中的第3值
"""
list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 1. 通过索引打印出列表中第2个值
print(list1[1])
# 2. 删除列表中的第3值
del list1[2]
print(list1)
"""